﻿using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using STT.Business;
using STT.Entities;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Web;


namespace STT.Admin.UserControls
{
    public partial class ucLoaiTinTuc : System.Web.UI.UserControl
    {
        public bool chonSuaClick;
        protected void Page_Load(object sender, EventArgs e)
        {
            LoadLoaiTinTuc(); 
        }
        void LoadLoaiTinTuc()
        {
            gvLoaiTinTuc.AutoGenerateColumns = false;
            gvLoaiTinTuc.DataSource = BTbLoaiTinTuc.SelectAll();
            gvLoaiTinTuc.DataBind();
        }
        bool KiemTraDuLieu()
        {
            return BTbLoaiTinTuc.KiemTraDuLieu(new ETbLoaiTinTuc
            {
                TenLoaiTT = txtLoaiTinTuc.Text
             
            });
        }
        bool KiemTraDuLieu_Sua()
        {
            return BTbLoaiTinTuc.KiemTraDuLieu_Sua(new ETbLoaiTinTuc
            {
                TenLoaiTT = txtLoaiTinTuc.Text,
                MaLoaiTT = Int32.Parse(hfMaLoaiTinTuc.Value)
            });
        }
        void ThongBao(string Loi)
        {
            ScriptManager.RegisterClientScriptBlock(this, GetType(), "Thông báo!", "<script>alert('" + Loi + "')</script>", false);
        }
        protected void gvLoaiTinTuc_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "ChonSua")
            {
                // Lay id
                int index = Convert.ToInt32(e.CommandArgument);
                hfMaLoaiTinTuc.Value = gvLoaiTinTuc.DataKeys[index].Value.ToString();
                // Thay đổi tiêu đề
                txtTieuDe.InnerText = "Sửa Loại tin tức";
                txtLoaiTinTuc.Text = HttpUtility.HtmlDecode(gvLoaiTinTuc.Rows[index].Cells[2].Text);
                ddTrangThai.Text = gvLoaiTinTuc.Rows[index].Cells[3].Text;

                chonSuaClick = true;
            }
        }

        protected void lbXoaTat_Click(object sender, EventArgs e)
        {

        }

        protected void lbXuatDuLieu_Click(object sender, EventArgs e)
        {

        }

        protected void btThemMoi_Click(object sender, EventArgs e)
        {
            if (!KiemTraDuLieu())
            {
                BTbLoaiTinTuc.Insert(new ETbLoaiTinTuc
                {
                    TenLoaiTT = txtLoaiTinTuc.Text,
                    TrangThai = ddTrangThai.SelectedValue == "1" ? true : false
                });
                LoadLoaiTinTuc();
                Session["action"] = 1;
            }
            else
            {
                ThongBao("Loại tin tức này đã tồn tại!");
            }
        }

        protected void btSearch_Click(object sender, ImageClickEventArgs e)
        {
            DataTable dt = new DataTable();
            dt = BTbLoaiTinTuc.SearchLoaiTinTuc(new ETbLoaiTinTuc
            {
                TenLoaiTT = txtTimKiem.Text
            });
            gvLoaiTinTuc.DataSource = dt;
            gvLoaiTinTuc.DataBind();
        }

        protected void btThemExcel_Click(object sender, EventArgs e)
        {
            if (!KiemTraDuLieu())
            {
                if (FileUpload.HasFile)
                {
                    string FileName = FileUpload.FileName;
                    string path = string.Concat(Server.MapPath("~/Uploads/Files/" + FileUpload.FileName));

                    FileUpload.PostedFile.SaveAs(path);

                    OleDbConnection OleDbcon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;");

                    OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", OleDbcon);
                    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(command);

                    OleDbcon.Open();
                    // Create DbDataReader to Data Worksheet

                    OleDbDataReader dr = command.ExecuteReader();
                    // Bulk Copy to SQL Server 
                    SqlBulkCopy bulkInsert = new SqlBulkCopy(STT.Connection.ConnectionString.Text);
                    bulkInsert.DestinationTableName = "TbLoaiTinTuc";
                    bulkInsert.WriteToServer(dr);
                    OleDbcon.Close();
                }
                LoadLoaiTinTuc();
                Session["action"] = 1;
            }
            else
            {
                ThongBao("Một số Loại tin tức đã tồn tại!");
            }
        }

        protected void btSua_Click(object sender, EventArgs e)
        {
            if (!KiemTraDuLieu_Sua())
            {
                BTbLoaiTinTuc.Update(new ETbLoaiTinTuc
                {
                    MaLoaiTT = Int32.Parse(hfMaLoaiTinTuc.Value),
                    TenLoaiTT = txtLoaiTinTuc.Text,
                    TrangThai = ddTrangThai.SelectedValue == "1" ? true : false
                });
                LoadLoaiTinTuc();
                Session["action"] = 2;
            }
            else
            {
                ThongBao("Vui lòng kiểm tra lại dữ liệu , dữ liệu đã tồn tại !");
            }
      
        }

        protected void lbXoaTat_Click1(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < gvLoaiTinTuc.Rows.Count; i++)
                {
                    CheckBox cbChon = (CheckBox)gvLoaiTinTuc.Rows[i].Cells[0].FindControl("cbChon");
                    if (cbChon != null && cbChon.Checked)
                    {
                        BTbKhoaHoc.Delete(int.Parse(gvLoaiTinTuc.DataKeys[i].Value.ToString()));
                    }
                }

                LoadLoaiTinTuc();
                Session["action"] = 3;
            }
            catch
            {
                ThongBao("Dữ liệu của một số Loại tin tức vẫn tồn tại, vui lòng kiểm tra lại dữ liệu!");
            }
        }
      
        protected void gvLoaiTinTuc_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvLoaiTinTuc.PageIndex = e.NewPageIndex;
            gvLoaiTinTuc.DataBind();
        }

        protected void gvLoaiTinTuc_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
           
            int MaLoaiTinTuc = int.Parse(gvLoaiTinTuc.DataKeys[e.RowIndex].Value.ToString());            
            BTbLoaiTinTuc.Delete(MaLoaiTinTuc);
            LoadLoaiTinTuc();
            Session["action"] = 3;
        }
    }
}